Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Лабораторна робота №7 Програмування, ч3

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
СІ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2017
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Звіт з лабораторної роботи № 7 з дисципліни: “Структури даних та алгоритми» На тему: “ Структура даних БІНАРНЕ ДЕРЕВО ПОШУКУ” Варіант 9 1. МЕТА РОБОТИ Вивчення абстрактної структури даних "Бінарне дерево пошуку". Набуття практичних навичок побудови дерева та використання його для розв'язання прикладних задач. 2. ЗАВДАННЯ 2.1 Постановка задачі 2.1.1 Побудувати бінарне дерево пошуку для послідовності чисел, що вводяться з клавіатури. Реалізувати операції додавання та вилучення вузлів з бінарного дерева пошуку. Виконати обхід дерева у заданому порядку та показати: 1. послідовність вершин дерева при проходженні його у прямому порядку; 2. послідовність листків дерева при проходженні його у зворотньому порядку; 3. послідовність вузлів, що мають тільки одного нащадка при проходженні дерева у симетричному порядку. 2.1.2 Знайти середнє арифметичне значення всіх листків дерева.. 2.2 Алгоритм розв’язання задачі 2.2.1 Створюю новий проект C++ в середовищі розробки Visual Studio 2017 2.2.2 Моделюю бінарне дерево пошуку згідно з завданням, переписуючи основні операції роботи з деревом: void add_node(int x, TreeNode *&MyTree) //Додавання нового вузла(вершини) void ShowSort(TreeNode *&Tree) //Відображення бінарного дерева у відсортированому порядку TreeNode* deleteElem(TreeNode* root, int elem) /Видалення вузла void levelOrderPrint(TreeNode *root) //Відображення по рівням void del(TreeNode *&Tree) //Видалення динамічної пам'яті void preorderPrint(TreeNode *root) //Відображення бінарного дерева у прямому порядку void postorderPrint(TreeNode *root) //Відображення бінарного дерева у зворотньому порядку void inorderPrint(TreeNode *root) //Відображення бінарного дерева у рекурсивному порядку 2.2.3 Виконую індивідуальне завдання згідно з варіантом; 2.2.4 Закінчую створення програми та перевіряю правильність її виконання. 2.3 Результати виконання програми / Рис 2.3 Результат виконання програми ВИСНОВКИ Під час виконання лабораторної роботи я набув практичних навичок побудови черги, дослідив динаміку його вмісту та використання черг для розв'язання прикладних задач. ДОДАТКИ Файл Tree.h #pragma once #include "stdafx.h" #include <queue> #include<iostream> #include <stack> int COUNT = 0; using namespace std; struct TreeNode { int data; // ключ TreeNode *left; // вказівник на лівого потомка TreeNode *right; // вказівник на правого потомка }; //Додавання нового вузла(вершини) void add_node(int x, TreeNode *&MyTree) { if (NULL == MyTree) { MyTree = new TreeNode; //Виділення пам'яті MyTree->data = x; //Запис даних MyTree->left = MyTree->right = NULL; //Ініціалізація підвершин пустотой } if (x<MyTree->data) //Якщо новий елемент менше вершини - ідем вліво { if (MyTree->left != NULL) add_node(x, MyTree->left); //Рекурсією штовхаєм елемент else //Якщо знайшли участок елементу { MyTree->left = new TreeNode; //Виділяєм пам'ять MyTree->left->left = MyTree->left->right = NULL; //Ініціалізуєм його лівий та правий вузол MyTree->left->data = x; //Записуєм елемент в наш знайдений участок } } if (x>MyTree->data) //Якщо елемент більший вершини - ідем вправо { if (MyTree->right != NULL) add_node(x, MyTree->right); else { MyTree->right = new TreeNode; MyTree->right->left = MyTree->right->right = NULL; MyTree->right->data = x; } } } //Відображення бінарного дерева у відсортированому порядку void ShowSort(TreeNode *&Tree) { if (Tree != NULL) { ShowSort(Tree->left); //Рекурсивна функція для вивода лівого піддерева cout << Tree->data<<" "; //Відображення кореня ShowSort(Tree->right); //Рекурсивна функція для вивода правого піддерева } } TreeNode* findPred(TreeNode* root) { static TreeNode* pred; if (root == NULL) { return pred; } else { pred = root; return f...
Антиботан аватар за замовчуванням

28.05.2019 18:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини